// app.ts
import '~/api/mixin.js'
import '~/api/index.js'
import { doUserInfo } from '~/api/user'
import { store } from "~/stores/app"
import type { userInfoState } from '~/../typings/types/stores/app'

App<IAppOption>({
  globalData: {},
  async onLaunch() {
    store.initCitys()
    // 展示本地存储能力
    const logs = wx.getStorageSync('logs') || []
    logs.unshift(Date.now())
    wx.setStorageSync('logs', logs)
    wx.getSystemInfo({
      success: function (e) {
        // @ts-ignore
        wx.$StatusBar = e.statusBarHeight
        let custom = wx.getMenuButtonBoundingClientRect();
        // @ts-ignore
        wx.$Custom = custom;
        // @ts-ignore
        wx.$CustomBar = custom.bottom + custom.top - e.statusBarHeight;
      }
    })
    // 登录
    doUserInfo().then((data: userInfoState) => {
      store.setUserInfo(data)
    })
    // 版本更新
    const updateManager = wx.getUpdateManager();
    updateManager.onCheckForUpdate(function () {
      // 请求完新版本信息的回调
      // console.log(res.hasUpdate);
    });
    updateManager.onUpdateReady(function () {
      wx.showModal({
        title: '更新提示',
        content: '新版本已经准备好，是否重启应用？',
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate();
          }
        }
      });
    });
    updateManager.onUpdateFailed(function () {
      // 新的版本下载失败
      wx.showModal({
        title: '已经有新版本了哟~',
        content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
      })
    });
  },
})